org.globalplatform.contactless
Interface GPCLRegistryEntry

All Superinterfaces:
GPRegistryEntry, javacard.framework.Shareable

public interface GPCLRegistryEntry
extends GPRegistryEntry

Defines methods that manage the GlobalPlatform registry extension on contactless interface for an applet.

All OPEN-owned objects implementing the GPRegistryEntry interface shall also implement and may be casted to the GPCLRegistryEntry interface.

When an Application is deleted, then the GPCLRegistryEntry object corresponding to this Application shall be disabled and all its methods, except the GPRegistryEntry.getAID() method, shall throw a SystemException with reason code SystemException.ILLEGAL_USE. The OPEN shall ensure that this GPCLRegistryEntry object can never be re-enabled, even if an Application with the same AID as the Application previously bound to this GPCLRegistryEntry object is installed. The OPEN shall not return this GPCLRegistryEntry object as the result of any of the methods this API. An application holding a reference to a disabled GPCLRegistryEntry object should release it, as it has become useless and will only throw exceptions.

Note: Developers shall pay attention to the CRELApplication, CLApplet and CRSApplication interfaces being notified upon usage of GPCLRegistryEntry services. Therefore, it is strongly recommended *not* to call the services provided by this interface when a Java Card transaction is under progress.

Since:
See Also:
GPCLSystem.getGPCLRegistryEntry(AID), GPCLSystem.getNextGPCLRegistryEntry(GPCLRegistryEntry, short)

Field Summary
static byte CONTINUOUS_PROCESS_DISABLED
          Constant indicating that the application supports Interleaved Processing.
static byte CONTINUOUS_PROCESS_ENABLED
          Constant indicating that the application requires Continuous Processing.
static byte DISPLAY_REQUIREMENT_NO
          Constant indicating that the application does not require the availability of display capabilities (i.e. can work when the display is off or not available).
static byte DISPLAY_REQUIREMENT_YES
          Constant indicating that the application requires the availability of display capabilities (i.e. cannot work when the display is off or not available).
static byte IMPLICIT_SELECTION_TYPE_A
          Constant indicating that the application supports contactless protocol Type A for implicit selection
static byte IMPLICIT_SELECTION_TYPE_B
          Constant indicating that the application supports contactless protocol Type B for implicit selection
static byte IMPLICIT_SELECTION_TYPE_F
          Constant indicating that the application supports contactless protocol Type F for implicit selection
static short INFO_CONTINUOUS_PROCESS
          The requested information is the Continuous Processing Indicator.
static short INFO_COUNTER_UPDATE
          The requested information is the Update Counter (READ ONLY).
static short INFO_DISCRETIONARY_DATA
          The requested information is discretionary data.
static short INFO_DISPLAY_MESSAGE
          The requested information is a diplay message (i.e. content of Display Message - Tag '5F45').
static short INFO_DISPLAY_REQUIREMENT
          The requested information is the Display Required Indicator.
static short INFO_FAMILY_IDENTIFIER
          The requested information is an Application Family Identifier.
static short INFO_GROUP_HEAD_APPLICATION
          The requested information is the AID of the Group Head Application if this entry correspond to a Member Application.
static short INFO_IMPLICIT_SELECTION_PROTOCOLS
          The requested information is a list of protocols (Type A, Type B and/or Type F) used for implicit selection.
static short INFO_IMPLICIT_SELECTION_RECOGNITION_ALGORITHM
          The requested information is a Recognition Algorithm to be used for Implicit Selection (i.e. content of INSTALL system parameter Tag '83').
static short INFO_LOGO
          The requested information is a logo (i.e. content of Application Image Template - Tag '6D').
static short INFO_POLICY_RESTRICTED_APPLICATIONS
          The requested information is a policy restricting the joint usage of some applications.
static short INFO_PROTOCOL_DATA_TYPE_A
          The requested information is the PROTOCOL_DATA_TYPE_A (i.e. content of INSTALL system parameter Tag '86').
static short INFO_PROTOCOL_DATA_TYPE_B
          The requested information is the PROTOCOL_DATA_TYPE_B (i.e. content of INSTALL system parameter Tag '87').
static short INFO_PROTOCOL_DATA_TYPE_F
          The requested information is the PROTOCOL_DATA_TYPE_F (i.e. content of INSTALL system parameter Tag '88').
static short INFO_PROTOCOL_TYPE_F_MODE_FLAG
          The requested information is the transient Mode Flag associated with a specific System Code as part of Type F Protocol anti-collision process.
static short INFO_SELECTION_PRIORITY
          The requested information is the Selection Priority (READ ONLY) encoded as a single unsigned byte.
static short INFO_URI
          The requested information is an URI (i.e. content of Uniform Ressource Identifier Tag '5F50').
static byte PRIVILEGE_CONTACTLESS_ACTIVATION
          Contactless Activation privilege (18).
static byte PRIVILEGE_CONTACTLESS_SELF_ACTIVATION
          Self Activation privilege (19).
static byte PROTOCOL_TYPE_F_MODE_FLAG_FALSE
          Constant indicating that a Type F Mode Flag is set to false.
static byte PROTOCOL_TYPE_F_MODE_FLAG_TRUE
          Constant indicating that a Type F Mode Flag is set to true.
static byte STATE_CL_ACTIVATED
          Constant used to activate an applet on the contactless interface.
static byte STATE_CL_DEACTIVATED
          Constant used to deactivate an applet on the contactless interface.
static byte STATE_CL_NON_ACTIVATABLE
          Constant used to change the state of an applet to NON ACTIVATABLE over the contactless interface.
 
Fields inherited from interface org.globalplatform.GPRegistryEntry
PRIVILEGE_AUTHORIZED_MANAGEMENT, PRIVILEGE_CARD_LOCK, PRIVILEGE_CARD_RESET, PRIVILEGE_CARD_TERMINATE, PRIVILEGE_CIPHERED_LOAD_FILE_DATA_BLOCK, PRIVILEGE_CVM_MANAGEMENT, PRIVILEGE_DAP_VERIFICATION, PRIVILEGE_DELEGATED_MANAGEMENT, PRIVILEGE_FINAL_APPLICATION, PRIVILEGE_GLOBAL_DELETE, PRIVILEGE_GLOBAL_LOCK, PRIVILEGE_GLOBAL_REGISTRY, PRIVILEGE_GLOBAL_SERVICE, PRIVILEGE_MANDATED_DAP, PRIVILEGE_RECEIPT_GENERATION, PRIVILEGE_SECURITY_DOMAIN, PRIVILEGE_TOKEN_VERIFICATION, PRIVILEGE_TRUSTED_PATH
 
Method Summary
 void addToCRELApplicationList(byte[] baAID, short offsetAID, short lengthAID)
          Adds an AID to the list of CREL Applications referenced by this entry.
 void addToGroupAuthorizationList(byte[] baAID, short offsetAID, short lengthAID)
          Adds an AID to the Group Authorization List.
 byte getCLState()
          Retrieves the contactless activation state of the Application.
 short getInfo(byte[] buffer, short offset, short info)
          Retrieves the contents of an Application Information stored by this entry.
 GPCLRegistryEntry getNextConflictingApplication(GPCLRegistryEntry oEntry)
          Retrieves the list of currently activated Contactless Applications that would conflict if the Contactless Application represented by this entry was activated.
 GPCLRegistryEntry getNextCRELApplication(GPCLRegistryEntry oEntry)
          Retrieves the list of CREL Applications referenced by this entry.
 GPCLRegistryEntry getNextGroupMember(GPCLRegistryEntry oEntry)
          Retrieves the list of member Applications belonging to the Application Group represented by this entry (Head Application).
 GPCLRegistryEntry getNextReferencingApplication(GPCLRegistryEntry oEntry)
          Retrieves the list of Applications that reference this entry as one of their CREL Applications.
 boolean isGroupHead()
          Whether this entry represents a Group Head.
 boolean isGroupMember()
          Whether this entry represents a Group Member.
 void joinGroup(javacard.framework.AID oHead)
          Sets up this entry as a member of the Application Group with specified Head Application.
 void removeFromCRELApplicationList(byte[] baAID, short offsetAID, short lengthAID)
          Removes an AID from the list of CREL Applications referenced by this entry.
 void removeFromGroupAuthorizationList(byte[] baAID, short offsetAID, short lengthAID)
          Removes an AID from the Group Authorization List.
 byte setCLState(byte state)
          Changes the contactless activation state of the Application represented by this entry.
 short setInfo(byte[] buffer, short offset, short length, short info)
          Updates the contents of an Application Information stored by this entry.
 void setPartialSelectionOrder(boolean highestLowest)
          Sets the permanent order of the GlobalPlatform Registry used by application selection by AID matching.
 
Methods inherited from interface org.globalplatform.GPRegistryEntry
deregisterService, getAID, getPrivileges, getState, isAssociated, isPrivileged, registerService, setState
 

Field Detail

PRIVILEGE_CONTACTLESS_ACTIVATION

static final byte PRIVILEGE_CONTACTLESS_ACTIVATION
Contactless Activation privilege (18). This privilege allows

See Also:
Constant Field Values

PRIVILEGE_CONTACTLESS_SELF_ACTIVATION

static final byte PRIVILEGE_CONTACTLESS_SELF_ACTIVATION
Self Activation privilege (19). This privilege allows an Applet to transition to ACTIVATED on the Contactless interface.

See Also:
Constant Field Values

STATE_CL_NON_ACTIVATABLE

static final byte STATE_CL_NON_ACTIVATABLE
Constant used to change the state of an applet to NON ACTIVATABLE over the contactless interface. When applet is NON ACTIVATABLE, it is also implicitly DEACTIVATED.

See Also:
Constant Field Values

STATE_CL_ACTIVATED

static final byte STATE_CL_ACTIVATED
Constant used to activate an applet on the contactless interface. An applet that is currently NON ACTIVATABLE can not be ACTIVATED.

See Also:
Constant Field Values

STATE_CL_DEACTIVATED

static final byte STATE_CL_DEACTIVATED
Constant used to deactivate an applet on the contactless interface.

See Also:
Constant Field Values

INFO_URI

static final short INFO_URI
The requested information is an URI (i.e. content of Uniform Ressource Identifier Tag '5F50').

See Also:
Constant Field Values

INFO_DISCRETIONARY_DATA

static final short INFO_DISCRETIONARY_DATA
The requested information is discretionary data.

See Also:
Constant Field Values

INFO_LOGO

static final short INFO_LOGO
The requested information is a logo (i.e. content of Application Image Template - Tag '6D').

See Also:
Constant Field Values

INFO_PROTOCOL_DATA_TYPE_A

static final short INFO_PROTOCOL_DATA_TYPE_A
The requested information is the PROTOCOL_DATA_TYPE_A (i.e. content of INSTALL system parameter Tag '86'). If the application was personalized with a reference to a Protocol Parameter Profile (tag 'A2'), the value of the protocol parameter data shall be returned.

See Also:
Constant Field Values

INFO_PROTOCOL_DATA_TYPE_B

static final short INFO_PROTOCOL_DATA_TYPE_B
The requested information is the PROTOCOL_DATA_TYPE_B (i.e. content of INSTALL system parameter Tag '87'). If the application was personalized with a reference to a Protocol Parameter Profile (tag 'A2'), the value of the protocol parameter data shall be returned.

See Also:
Constant Field Values

INFO_PROTOCOL_DATA_TYPE_F

static final short INFO_PROTOCOL_DATA_TYPE_F
The requested information is the PROTOCOL_DATA_TYPE_F (i.e. content of INSTALL system parameter Tag '88').

See Also:
Constant Field Values

INFO_DISPLAY_MESSAGE

static final short INFO_DISPLAY_MESSAGE
The requested information is a diplay message (i.e. content of Display Message - Tag '5F45').

Since:
export file version 1.1
See Also:
Constant Field Values

INFO_FAMILY_IDENTIFIER

static final short INFO_FAMILY_IDENTIFIER
The requested information is an Application Family Identifier.

This information is encoded as follows:

See Also:
Constant Field Values

INFO_IMPLICIT_SELECTION_PROTOCOLS

static final short INFO_IMPLICIT_SELECTION_PROTOCOLS
The requested information is a list of protocols (Type A, Type B and/or Type F) used for implicit selection.

This information is encoded as a sequence of bytes representing the value(s) of one or more of the following constants:

If the sequence is empty, the application can be implicity selected using any of these protocol types (see definition of TLV "Assigned Protocol for Implicit Selection").

See Also:
Constant Field Values

IMPLICIT_SELECTION_TYPE_A

static final byte IMPLICIT_SELECTION_TYPE_A
Constant indicating that the application supports contactless protocol Type A for implicit selection

See Also:
Constant Field Values

IMPLICIT_SELECTION_TYPE_B

static final byte IMPLICIT_SELECTION_TYPE_B
Constant indicating that the application supports contactless protocol Type B for implicit selection

See Also:
Constant Field Values

IMPLICIT_SELECTION_TYPE_F

static final byte IMPLICIT_SELECTION_TYPE_F
Constant indicating that the application supports contactless protocol Type F for implicit selection

See Also:
Constant Field Values

INFO_CONTINUOUS_PROCESS

static final short INFO_CONTINUOUS_PROCESS
The requested information is the Continuous Processing Indicator.

This information may have one of the following values:

See Also:
Constant Field Values

CONTINUOUS_PROCESS_ENABLED

static final byte CONTINUOUS_PROCESS_ENABLED
Constant indicating that the application requires Continuous Processing.

Since:
export file version 1.1
See Also:
Constant Field Values

CONTINUOUS_PROCESS_DISABLED

static final byte CONTINUOUS_PROCESS_DISABLED
Constant indicating that the application supports Interleaved Processing.

Since:
export file version 1.1
See Also:
Constant Field Values

INFO_COUNTER_UPDATE

static final short INFO_COUNTER_UPDATE
The requested information is the Update Counter (READ ONLY). This counter is automatically incremented each time this GPCLRegistryEntry is updated. This counter is used by CRS/CREL applications to synchronize with the current state of the GlobalPlatform registry.

See Also:
Constant Field Values

INFO_DISPLAY_REQUIREMENT

static final short INFO_DISPLAY_REQUIREMENT
The requested information is the Display Required Indicator. Used to know if the application can work depending on the availability of display capabilities. This information may have one of the following values:

See Also:
Constant Field Values

DISPLAY_REQUIREMENT_NO

static final byte DISPLAY_REQUIREMENT_NO
Constant indicating that the application does not require the availability of display capabilities (i.e. can work when the display is off or not available).

Since:
export file version 1.1
See Also:
Constant Field Values

DISPLAY_REQUIREMENT_YES

static final byte DISPLAY_REQUIREMENT_YES
Constant indicating that the application requires the availability of display capabilities (i.e. cannot work when the display is off or not available).

Since:
export file version 1.1
See Also:
Constant Field Values

INFO_POLICY_RESTRICTED_APPLICATIONS

static final short INFO_POLICY_RESTRICTED_APPLICATIONS
The requested information is a policy restricting the joint usage of some applications.

This information is encoded as a sequence (possibly empty) of TLV structures, each one representing an AID (tag '4F').

Since:
export file version 1.1
See Also:
Constant Field Values

INFO_IMPLICIT_SELECTION_RECOGNITION_ALGORITHM

static final short INFO_IMPLICIT_SELECTION_RECOGNITION_ALGORITHM
The requested information is a Recognition Algorithm to be used for Implicit Selection (i.e. content of INSTALL system parameter Tag '83').

Since:
export file version 1.1
See Also:
Constant Field Values

INFO_SELECTION_PRIORITY

static final short INFO_SELECTION_PRIORITY
The requested information is the Selection Priority (READ ONLY) encoded as a single unsigned byte.

The Selection Priority is calculated based on the absolute position of the Contactless Application's entry in the GlobalPlatform Registry, and the Volatile Priority, if assigned.

Since:
export file version 1.1
See Also:
Constant Field Values

INFO_GROUP_HEAD_APPLICATION

static final short INFO_GROUP_HEAD_APPLICATION
The requested information is the AID of the Group Head Application if this entry correspond to a Member Application. The binary value of the AID (5 to 16 bytes) is written to the specified buffer.

Since:
export file version 1.1
See Also:
isGroupMember(), Constant Field Values

INFO_PROTOCOL_TYPE_F_MODE_FLAG

static final short INFO_PROTOCOL_TYPE_F_MODE_FLAG
The requested information is the transient Mode Flag associated with a specific System Code as part of Type F Protocol anti-collision process.

This data does not belong to the set of persistent Type F protocol parameters but is a transient protocol data that must be accessed by Type F Applets during a contactless transaction.

This information is encoded as the concatenation of a 2-byte System Code and a 1-byte Mode Flag. The Mode Flag may have one of the following values:

Since:
export file version 1.2
See Also:
Constant Field Values

PROTOCOL_TYPE_F_MODE_FLAG_TRUE

static final byte PROTOCOL_TYPE_F_MODE_FLAG_TRUE
Constant indicating that a Type F Mode Flag is set to true.

Since:
export file version 1.2
See Also:
Constant Field Values

PROTOCOL_TYPE_F_MODE_FLAG_FALSE

static final byte PROTOCOL_TYPE_F_MODE_FLAG_FALSE
Constant indicating that a Type F Mode Flag is set to false.

Since:
export file version 1.2
See Also:
Constant Field Values
Method Detail

setCLState

byte setCLState(byte state)
Changes the contactless activation state of the Application represented by this entry.

Only the Application represented by this entry may transition to or from the NON ACTIVATABLE state. When this entry represents a Group Member currently in the NON ACTIVATABLE state and that Group Member requests transioning to the DEACTIVATED state (i.e. only allowed transition request at this time), then it shall be automatically transitioned to the same activation state as its associated Head Application (except if the Head Application is in the STATE_CL_NON_ACTIVATABLE state).

The Application represented by this entry, or the Application with the PRIVILEGE_CONTACTLESS_ACTIVATION privilege, or CREL Applications registered in the CREL list of the Application represented by this entry, may transition this entry to the DEACTIVATED state.

When a request is made to transition this entry to the STATE_CL_ACTIVATED state, then

The OPEN is responsible for notifying the transition (if any) to the following Applications, except to the one that is at the origin of the request: It shall be supported to change the activation state of a contactless applet irrespective of the state of the contactless front end in the handset. When the contactless functionality is enabled the OPEN shall ensure that the contactless front end is provisioned so that it reflects the configuration of the contactless applets in the OPEN.

Parameters:
state - requested activation state on contactless interface. The possible states are:
Returns:
the resulting activation state on contactless interface.
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller does not have enough privileges, or the presence of the CRS Application is required and the CRS Application cannot be located or is not in a selectable state.
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the requested state is ACTIVATED and the Application corresponding to this entry either
  • ISO7816.SW_WRONG_DATA if the Application cannot be activated on the contactless interface because of conflicting RF parameters.
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the requested activation state transition is not valid.
  • ISO7816.SW_UNKNOWN if the call to the CRSApplication.processCLRequest(GPRegistryEntry, GPCLRegistryEntry, short) method resulted in an exception being thrown.
See Also:
GPRegistryEntry

getCLState

byte getCLState()
Retrieves the contactless activation state of the Application.

Returns:
byte value of contactless activation state:

getInfo

short getInfo(byte[] buffer,
              short offset,
              short info)
Retrieves the contents of an Application Information stored by this entry. Returned data is formatted as specified for the INSTALL system parameter relating to the specified INFO_XX constant.

Parameters:
buffer - where requested information shall be written. For the coding of the data see the documentation of the constants INFO_XX.
offset - within buffer, where requested information shall be written.
info - is any constant with name INFO_XX which is defined in this interface.
Returns:
(offset + length of data written in buffer)
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller
    • is not the Application represented by this entry, and
    • does not have the PRIVILEGE_CONTACTLESS_ACTIVATION privilege and
    • does not have the GPRegistryEntry.PRIVILEGE_GLOBAL_REGISTRY privilege, and
    • is not a Security Domain directly associated to the Application represented by this entry, and
    • is not a CREL Application registered in the CREL list of the Application represented by this entry.
  • ISO7816.SW_WRONG_DATA if the value of info is unknown.
  • ISO7816.SW_RECORD_NOT_FOUND if the info is not present.
java.lang.ArrayIndexOutOfBoundsException - if storing the Application Information bytes would cause access outside array bounds or the offset is negative.
java.lang.NullPointerException - if buffer is null

setInfo

short setInfo(byte[] buffer,
              short offset,
              short length,
              short info)
Updates the contents of an Application Information stored by this entry. Received data is expected to be formatted as specified for the INSTALL system parameter relating to the specified INFO_XX constant.

Parameters:
buffer - contains the updated information. For the coding of the data see the documentation of the constants INFO_XX.
offset - within buffer, where updated information can be found
length - of the updated information
info - is any constant with name INFO_XX which is defined in this interface.
Returns:
(offset + length)
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller
    • is not the Application represented by this entry, and
    • is not a Security Domain directly or indirectly associated to the Application represented by this entry.
  • ISO7816.SW_WRONG_DATA if the value is not correctly formatted.
  • ISO7816.SW_WRONG_DATA if the value of info is unknown.
  • ISO7816.SW_FUNC_NOT_SUPPORTED if the info is not supported by the platform (e.g. unsupported RF protocol data).
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the info indicates a READ ONLY information.
java.lang.ArrayIndexOutOfBoundsException - if storing the Application Information bytes would cause access outside array bounds or the offset is negative.
java.lang.NullPointerException - if buffer is null

getNextConflictingApplication

GPCLRegistryEntry getNextConflictingApplication(GPCLRegistryEntry oEntry)
Retrieves the list of currently activated Contactless Applications that would conflict if the Contactless Application represented by this entry was activated.

NOTE: For Applications belonging to an Application Group, Contactless Protocol Parameters (used to perform conflict detection) are provided by the Head Application of that group, even if the Member Application was personalized with its own parameter values.

Parameters:
oEntry - GPCLRegistryEntry
Returns:
  • If the list is empty, this method returns null.
  • If oEntry is null, this method returns the first entry of the list.
  • If oEntry is not null and belongs to the list,
  • this method returns the next entry of the list following oEntry.
  • If oEntry is not null and points to the last entry of the list, this method returns null.
  • If oEntry is not null but does not belong to the list, this method returns null.
Throws:
javacard.framework.ISOException - with reason code
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
javacard.framework.SystemException - with reason code SystemException.ILLEGAL_USE if the specified oEntry corresponds to an application that has been deleted.

joinGroup

void joinGroup(javacard.framework.AID oHead)
Sets up this entry as a member of the Application Group with specified Head Application.

Parameters:
oHead - Head Application's AID. The null value shall be used to leave any Application Group to which this entry may belong.
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED
    • if the caller of this method is not the Application represented by this entry, or
    • if the caller of this method is a Head application, or
    • if the oHead parameter is not null and this entry is already associated to a Head Application, or
    • if the oHead parameter is not null and cannot be found in the GlobalPlatform registry, or
    • if the oHead parameter is not null and does not identify a Head Application, or
    • if the AID of this entry cannot be found in the Group Authorization List of the Head application identified by the oHead parameter.

getNextGroupMember

GPCLRegistryEntry getNextGroupMember(GPCLRegistryEntry oEntry)
Retrieves the list of member Applications belonging to the Application Group represented by this entry (Head Application).

Parameters:
oEntry - GPCLRegistryEntry
Returns:
  • If this entry does not represent a Head Application, this method returns null.
  • If the list is empty, this method returns null.
  • If oEntry is null, this method returns the first entry of the list.
  • If oEntry is not null and belongs to the list,
  • this method returns the next entry of the list following oEntry.
  • If oEntry is not null and points to the last entry of the list, this method returns null.
  • If oEntry is not null but does not belong to the list, this method returns null.
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller
    • does not have the PRIVILEGE_CONTACTLESS_ACTIVATION privilege and
    • is not a CREL Application associated to this entry and
    • is not the Application represented by this entry.
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
javacard.framework.SystemException - with reason code SystemException.ILLEGAL_USE if the specified oEntry corresponds to an application that has been deleted.

addToGroupAuthorizationList

void addToGroupAuthorizationList(byte[] baAID,
                                 short offsetAID,
                                 short lengthAID)
Adds an AID to the Group Authorization List. The application represented by this entry shall be either a Head Application or a Standalone Application.

Parameters:
baAID - byte array containing the AID value
offsetAID - start offset of the AID value
lengthAID - length of the AID value
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED
    • if the application represented by this entry is already a Group Member (i.e. associated with a Head Application), or
    • if the caller of this method is neither the Application represented by this entry nor a Security Domain directly or indirectly associated with the Application represented by this entry.

removeFromGroupAuthorizationList

void removeFromGroupAuthorizationList(byte[] baAID,
                                      short offsetAID,
                                      short lengthAID)
Removes an AID from the Group Authorization List. If the application represented by this entry is not a Head Application, or the specified AID does not belong to the Group Authorization List, then the method simply returns with no error.

Parameters:
baAID - byte array containing the AID value
offsetAID - start offset of the AID value
lengthAID - length of the AID value
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED
    • if the caller of this method is neither the Application represented by this entry nor a Security Domain directly or indirectly associated with the Application represented by this entry.

setPartialSelectionOrder

void setPartialSelectionOrder(boolean highestLowest)
Sets the permanent order of the GlobalPlatform Registry used by application selection by AID matching.

If this entry is a Head Application, all Group Members are moved together with the Head Application in the same order.

Parameters:
highestLowest -
  • true: this entry (and associated Group Members, possibly) acquires highest priority for partial selection (i.e. first selected).
  • false: this entry (and associated Group Members, possibly) acquires lowest priority for partial selection (i.e. last selected).
Throws:
javacard.framework.ISOException - with reason code

getNextCRELApplication

GPCLRegistryEntry getNextCRELApplication(GPCLRegistryEntry oEntry)
Retrieves the list of CREL Applications referenced by this entry.

Parameters:
oEntry - GPCLRegistryEntry
Returns:
  • If the list is empty, this method returns null.
  • If oEntry is null, this method returns the first entry of the list.
  • If oEntry is not null and belongs to the list,
  • this method returns the next entry of the list following oEntry.
  • If oEntry is not null and points to the last entry of the list, this method returns null.
  • If oEntry is not null but does not belong to the list, this method returns null.
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
javacard.framework.SystemException - with reason code SystemException.ILLEGAL_USE if the specified oEntry corresponds to an application that has been deleted.

addToCRELApplicationList

void addToCRELApplicationList(byte[] baAID,
                              short offsetAID,
                              short lengthAID)
Adds an AID to the list of CREL Applications referenced by this entry.

Parameters:
baAID - byte array containing the AID value
offsetAID - start offset of the AID value
lengthAID - length of the AID value
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller of this method
    • is not a Security Domain directly or indirectly associated with the Application represented by this entry, and
    • is not the Application represented by this entry.

removeFromCRELApplicationList

void removeFromCRELApplicationList(byte[] baAID,
                                   short offsetAID,
                                   short lengthAID)
Removes an AID from the list of CREL Applications referenced by this entry.

Parameters:
baAID - byte array containing the AID value
offsetAID - start offset of the AID value
lengthAID - length of the AID value
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller of this method
    • is not a Security Domain directly or indirectly associated with the Application represented by this entry, and
    • is not the Application represented by this entry.

getNextReferencingApplication

GPCLRegistryEntry getNextReferencingApplication(GPCLRegistryEntry oEntry)
Retrieves the list of Applications that reference this entry as one of their CREL Applications.

Parameters:
oEntry - GPCLRegistryEntry
Returns:
  • If the list is empty, this method returns null.
  • If oEntry is null, this method returns the first entry of the list.
  • If oEntry is not null and belongs to the list, this method returns the next entry of the list following oEntry.
  • If oEntry is not null and points to the last entry of the list, this method returns null.
  • If oEntry is not null but does not belong to the list, this method returns null.
Throws:
javacard.framework.ISOException - with reason code
  • ISO7816.SW_CONDITIONS_NOT_STATISFIED if the caller
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
javacard.framework.SystemException - with reason code SystemException.ILLEGAL_USE if the specified oEntry corresponds to an application that have been deleted.

isGroupHead

boolean isGroupHead()
Whether this entry represents a Group Head.

Returns:
true if the Application represented by this entry is a Group Head, false otherwise (either a Group Member or a standalone Application).
Throws:
javacard.framework.ISOException - with reason code

isGroupMember

boolean isGroupMember()
Whether this entry represents a Group Member.

Returns:
true if the Application represented by this entry is a Group Member, false otherwise (either a Group Head or a standalone Application).
Throws:
javacard.framework.ISOException - with reason code